var obj = {
  name: "frank",
  age: 18,
};

Object.defineProperty(obj, "address", {
  value: "北京市",
  // 该属性不可配置(删除/修改)，也不可以重新定义属性描述符
  configurable: false,
  // 配置属性是否可以枚举
  enumerable: false,
  // 该属性是否可以赋值（写入值）
  writable: false,
  /* 默认值都为false */
});

// 测试configurable
// delete obj.name;
// console.log(obj.name);
// delete obj.address;
// console.log(obj.address);

// Object.defineProperty(obj, "address", {
//   value: "广州市",
//   configurable: true,
// });

// 测试enumerable
// console.log(obj);
// for (var key in obj) {
//   console.log(key);
// }
// console.log(Object.keys(obj));
// console.log(obj.address);

// 测试writable
obj.address = "上海市";
console.log(obj.address);
